package com.bootcamp.ex1125.util;

import com.bootcamp.ex1125.exception.ParamException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;

/**
 * @program: springboot
 * @description:
 * @author: Keyu Li
 * @create: 2021-11-25 19:07
 **/


public class ValidatorUtils {
    public static void valid(BindingResult bind) throws ParamException {
        if (bind.hasFieldErrors()) {
            // 成员变量，即请求参数 错误
            FieldError fieldError = bind.getFieldError();
            // 获得拒绝值的成员变量名，即请求参数名
            String field = fieldError.getField();
            // 拒绝值
            Object rejectedValue = fieldError.getRejectedValue();
            // 获取默认消息
            String defaultMessage = fieldError.getDefaultMessage();
            // 返回 json数据
            StringBuffer sb = new StringBuffer().append("请求参数 ").append(field)
                    .append(" 因为传入 ").append(rejectedValue)
                    .append(" 而失败，失败原因：").append(defaultMessage);
            throw new ParamException(sb.toString());
        }
    }
}
